// 登录状态存储核心（优化版：直接保存JSON对象）
const STORE_KEY = 'userInfo'

export default {
  /**
   * 保存登录信息（直接存储JSON对象）
   * @param {Object} info - 包含token的用户信息（JSON对象）
   */
  setLoginInfo(info) {
    try {
      // 直接存储JSON对象，不转为字符串
      uni.setStorageSync(STORE_KEY, info)
      console.log('登录信息保存成功：', info)
    } catch (e) {
      console.error('保存登录信息失败：', e)
    }
  },

  /**
   * 获取登录信息（直接返回JSON对象）
   * @returns {Object|null} 用户信息JSON对象或null
   */
  getLoginInfo() {
    try {
      // 直接获取JSON对象，无需解析
      const info = uni.getStorageSync(STORE_KEY)
      // 区分未存储和存储空值的情况
      return info !== '' && info !== null && info !== undefined ? info : null
    } catch (e) {
      console.error('获取登录信息失败：', e)
      return null
    }
  },

  /**
   * 判断是否登录
   * @returns {boolean} 登录状态（存在有效token则为true）
   */
  isLogin() {
    const info = this.getLoginInfo()
    // 确保info是对象且包含token（避免非对象类型的异常）
    return typeof info === 'object' && info !== null && !!info.token
  },

  /**
   * 清除登录信息（退出登录）
   */
  clearLoginInfo() {
    try {
      uni.removeStorageSync(STORE_KEY)
      console.log('登录信息已清除')
    } catch (e) {
      console.error('清除登录信息失败：', e)
    }
  }
}